package course.examples.Bluetooth.SetupAndTransferData;
import java.io.IOException;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothServerSocket;
import android.bluetooth.BluetoothSocket;
import android.os.Handler;
class AcceptThread extends Thread {
private BluetoothServerSocket mServerSocket;
private BluetoothSocket mBluetoothSocket = null;
private final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter
.getDefaultAdapter();
private final Handler mHandler;
public AcceptThread(Handler handler) {
mHandler = handler;
try {
mServerSocket = mBluetoothAdapter
.listenUsingRfcommWithServiceRecord("Bluetooth Demo",
DataTransferActivity.APP_UUID);
} catch (IOException e) {
}
}
public void run() {
while (true) {
try {
mBluetoothSocket = mServerSocket.accept();
manageConnectedSocket();
mServerSocket.close();
break;
} catch (IOException e1) {
if (mBluetoothSocket != null) {
try {
mServerSocket.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
}
}
private void manageConnectedSocket() {
ConnectionThread conn = new ConnectionThread(mBluetoothSocket, mHandler);
mHandler.obtainMessage(DataTransferActivity.SOCKET_CONNECTED, conn)
.sendToTarget();
conn.start();
}
public void cancel() {
try {
if (null != mServerSocket)
mServerSocket.close();
} catch (IOException e) {
}
}
}